package com.liuxinlong.modules.quartz.service;

import com.liuxinlong.modules.entity.QuartzTask;

import java.util.List;
import java.util.Map;

/**
 * 定时任务管理服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年6月14日
 */
public interface QuartzService {

    /**
     * 分页查询定时任务
     *
     * @param queryParam 查询参数
     * @return 定时任务分页数据
     */
    List<Map<String,Object>> pageQuartzJobs(Map<String,Object> queryParam);

    /**
     * 查询定时任务数量
     *
     * @param queryParam 查询参数
     * @return 定时任务数量
     */
    int getQuartzJobsCount(Map<String,Object> queryParam);

    /**
     * 新增定时任务
     */
    void addTask(QuartzTask jobInfo);

    /**
     * 修改定时任务
     */
    void updateTask(QuartzTask jobInfo);

    /**
     * 启用定时任务
     */
    void enableJob(String id);

    /**
     * 启动定时任务
     */
    void startJob(String id);

    /**
     * 暂停定时任务
     */
    void pauseJob(String id);

    /**
     * 挂起定时任务
     */
    void suspendJob(String id);

    /**
     * 恢复定时任务
     */
    void resumeJob(String id);

    /**
     * 重置定时任务
     */
    void rescheduleJob(String id);

    /**
     * 删除定时任务
     */
    void deleteJob(String id);

}
